Stored Procedures [dbo].[sp_asi_UnformatPhoneNumber]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
Parameters
NameData TypeMax Length (Bytes)
@tablevarchar(100)100
@columnvarchar(100)100
Permissions
TypeActionOwning Principal
GrantExecuteIMIS
SQL Script
create procedure sp_asi_UnformatPhoneNumber
     @table VARCHAR(100),
     @column VARCHAR(100)
AS
DECLARE @sql VARCHAR(2000)
DECLARE @phone VARCHAR(100)
SET @sql = 'DECLARE csrPhone CURSOR GLOBAL FOR ' +
     'SELECT ' + @column + ' ' +
      'FROM ' + @table + ' ' +
      'WHERE ' + @column + ' LIKE ''%[^0-9]%'' ' +
      'FOR UPDATE '
EXEC(@sql)
OPEN csrPhone
FETCH NEXT FROM csrPhone INTO @phone
SET NOCOUNT ON
WHILE @@FETCH_STATUS = 0
BEGIN
      WHILE PATINDEX('%[^0-9]%', @phone) > 0
           SET @phone = STUFF(@phone, PATINDEX('%[^0-9]%', @phone), 1, '')
      SET @sql = 'UPDATE ' + @table + ' ' +
           'SET ' + @column + ' = ''' + @phone + ''' ' +
           'WHERE CURRENT OF GLOBAL csrPhone '
      EXEC(@sql)
      FETCH NEXT FROM csrPhone INTO @phone
END
SET NOCOUNT OFF
CLOSE csrPhone
DEALLOCATE csrPhone

GO
GRANT EXECUTE ON  [dbo].[sp_asi_UnformatPhoneNumber] TO [IMIS]
GO
Uses
Used By